#pragma once
#include <CL\cl.hpp>
#include "OpenCLWork.h"
typedef unsigned char byte;
class OpenCL
{
private:
	void static printDevices(cl::Platform);
public:
	OpenCL(byte);
	void next();
	void setWork(OpenCLWork*); 
	std::vector<OpenCLWork*> OpenCL::getWorker();
	std::vector<int> getMaxComputeUnits();
	int getMaxComputeUnits(bool);
	void OpenCL::waitForWorker();
	std::vector<int> getMaxWorkGroupSizes();
	cl::Device getStandartDevice();
	void selectDevices(std::vector<byte>);
	void static printPlatforms();
	void printDevices();
	~OpenCL();
};

